﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using SEG.Model;
using SEG.UI.Control.Presenters;

namespace SEG.UI.Control.Views
{
    /// <summary>
    /// Interaction logic for IdentificarUsuarioView.xaml
    /// </summary>
    public partial class IdentificarUsuarioView : Window, IIdentificarUsuarioView
    {

        IdentificarUsuarioPresenter _presenter;
        public IdentificarUsuarioPresenter Presenter
        {
            get { return _presenter; }
            set { _presenter = value; }
        }

        AutenticarUsuarioParameter _usuario;
        public AutenticarUsuarioParameter Usuario
        {
            get
            {
                return _usuario;
            }
            set
            {
                _usuario = value;
                this.DataContext = _usuario;
            }
        }

        public IdentificarUsuarioView()
        {
            InitializeComponent();
            this.InitializePresenter();
        }

        private void InitializePresenter()
        {
            Presenter = new IdentificarUsuarioPresenter(this);
        }

        private void Aceptar_Click(object sender, RoutedEventArgs e)
        {
            if (errorProvider.Validate())
            {
                this.Presenter.Aceptar();

                if (Session.Usuario != null)
                {
                    this.Close();
                }
                else
                {
                    MessageBox.Show("El nombre de usuario y/o contraseña son incorrectos", "CBE", MessageBoxButton.OK, MessageBoxImage.Error);
                    this.Usuario.Contrasenia = String.Empty;
                }
            }
            else
            {
                var str = new StringBuilder();
                foreach (var item in this.errorProvider.ErrorMessages)
                {
                    str.AppendLine(item);
                }
                MessageBox.Show(str.ToString(), "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }

        private void Cancelar_Click(object sender, RoutedEventArgs e)
        {
            this.Presenter.Cancelar();
            this.Close();
        }

    }
}
